package cn.iocoder.yudao.module.cmt.controller.admin.venue.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import java.time.LocalDateTime;
import java.math.BigDecimal;
import cn.idev.excel.annotation.ExcelIgnoreUnannotated;
import cn.idev.excel.annotation.ExcelProperty;

@Schema(description = "管理后台 - VenueInfo Response VO")
@Data
@ExcelIgnoreUnannotated
public class VenueInfoRespVO {

    @Schema(description = "ID", example = "1")
    @ExcelProperty("ID")
    private Long id;

    @Schema(description = "创建时间")
    @ExcelProperty("创建时间")
    private LocalDateTime createTime;

    @Schema(description = "社区ID", example = "1")
    @ExcelProperty("社区ID")
    private Long communityId;

    @Schema(description = "商户ID(阵地所属商户)", example = "1")
    @ExcelProperty("商户ID")
    private Long merchantId;

    @Schema(description = "阵地类型ID", example = "1")
    @ExcelProperty("阵地类型ID")
    private Long typeId;

    @Schema(description = "阵地名称", example = "社区文化活动中心")
    @ExcelProperty("阵地名称")
    private String name;

    @Schema(description = "封面图片")
    @ExcelProperty("封面图片")
    private String coverImage;

    @Schema(description = "阵地图片(JSON数组)")
    @ExcelProperty("阵地图片")
    private String images;

    @Schema(description = "地址")
    @ExcelProperty("地址")
    private String address;

    @Schema(description = "经度", example = "116.404")
    @ExcelProperty("经度")
    private BigDecimal longitude;

    @Schema(description = "纬度", example = "39.915")
    @ExcelProperty("纬度")
    private BigDecimal latitude;

    @Schema(description = "面积(平方米)", example = "150.5")
    @ExcelProperty("面积")
    private BigDecimal area;

    @Schema(description = "容纳人数", example = "50")
    @ExcelProperty("容纳人数")
    private Integer capacity;

    @Schema(description = "开放时间", example = "周一至周五 9:00-18:00")
    @ExcelProperty("开放时间")
    private String openTime;

    @Schema(description = "设施标签(JSON数组)")
    @ExcelProperty("设施标签")
    private String facilities;

    @Schema(description = "阵地简介")
    @ExcelProperty("阵地简介")
    private String description;

    @Schema(description = "联系人")
    @ExcelProperty("联系人")
    private String contactPerson;

    @Schema(description = "联系电话")
    @ExcelProperty("联系电话")
    private String contactPhone;

    @Schema(description = "状态：0停用 1可预约 2使用中 3维护中", example = "1")
    @ExcelProperty("状态")
    private Integer venueStatus;

    @Schema(description = "是否推荐：0否 1是", example = "1")
    @ExcelProperty("是否推荐")
    private Integer isRecommend;

    @Schema(description = "浏览次数", example = "100")
    @ExcelProperty("浏览次数")
    private Integer viewCount;

    @Schema(description = "预约次数", example = "50")
    @ExcelProperty("预约次数")
    private Integer bookingCount;

    @Schema(description = "评分", example = "4.5")
    @ExcelProperty("评分")
    private BigDecimal rating;

    @Schema(description = "排序", example = "1")
    @ExcelProperty("排序")
    private Integer sort;

}
